Skip to content

fix prioritizing redesign#528

Merged
PTKu merged 7 commits into
devfrom
fix-prioritizing-redesign
Jun 12, 2026
Merged

fix prioritizing redesign#528
PTKu merged 7 commits into
devfrom
fix-prioritizing-redesign

Conversation

@PTKu

@PTKu PTKu commented Jun 12, 2026

Copy link
Copy Markdown
Contributor
  • ocs(openspec): propose webapi priority dispatcher
  • hore(tests): bump ax-test-project to AX SDK 2510
  • chore: add graphify knowledge graph output
  • feat(connector): add priority request dispatcher
  • chore(openspec): archive webapi-priority-dispatcher
  • chore(sandbox): bump ix-integration projects to AX SDK 2510

PTKu added 7 commits June 11, 2026 22:03
eAccessPriority does not prioritize: all requests funnel FIFO through
a semaphore, and Low holds a concurrency slot during its 500 ms
inter-chunk sleep, throttling the foreground work it should yield to.

Proposal specs a PriorityRequestDispatcher (per-class FIFO queues,
reserved UI slot, aging against starvation, pause/resume on re-login)
and cyclic-write-delivery guarantees fixing the snapshot/clear race
that silently drops CyclicToWrite assignments. Backward-compatible:
public API, eAccessPriority, BatchSettings unchanged.

Includes OpenSpec tooling: opsx commands, skills, config.
Replace per-package devDependency catalog pinned to
simatic-ax 2504.0.0-rc.1 with consolidated @ax/sdk 2510.12.0.
Regenerate hwc library templates (v3/v4_0 dropped, v4_1 added),
hardware identifiers, and certificates for the new toolchain;
restructure test IO sources (HwIdentifierList, IoStructures).

Add axopen.dev.tool (axdev) to dotnet tools; pin rollForward
false on all tools.
Persist generated codebase knowledge graph (graphify-out/: report,
community labels, AST cache) for graph-backed queries on this branch.
eAccessPriority never prioritized: all chunks funneled FIFO through
antiThrottlingSemaphore, and Low held a concurrency slot during its
500 ms inter-chunk sleep, throttling the foreground work it was
meant to yield to.

- PriorityRequestDispatcher: per-class FIFO queues, worker count
  capped at ConcurrentRequestMaxCount (clamped <= 4), one slot
  reserved for UserInterface/High, aging against starvation,
  pause/resume during re-login
- inter-chunk delay applied between enqueues, never while a worker
  slot is held
- UserInterfaceLatencyBudget (default 1500 ms): breaches logged and
  surfaced via LastUiBatchDurationMs / UiLatencyBreachCount, no hard
  timeout
- cyclic write fix: dirty-set swapped via Interlocked.Exchange and
  failed primitives re-added, so CyclicToWrite assignments survive
  transient failures; re-login clears pending writes with audit log
- antiThrottlingSemaphore removed; public API, eAccessPriority and
  BatchSettings unchanged
Verification complete on real S7-1500 (334/334). Sync delta specs
to openspec/specs. Add 5.6 headless test covering the rendered-
control refresh pathway (StartPolling → cyclic loop) since the
Blazor sandbox is unrunnable pre-operon.
Replace pinned 2504 package catalog with @ax/sdk 2510.12.0;
regenerate hwc library templates (v4_1), certificates, and ix
output; restructure IO sources for the new hwc layout.

Blazor sandbox: add Inxton.Operon with operon-variables.css,
bump tailwindcss to 4.3.
@PTKu PTKu merged commit d9f9317 into dev Jun 12, 2026
2 checks passed
@PTKu PTKu deleted the fix-prioritizing-redesign branch June 12, 2026 07:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant